package com.sofwin.service;

import com.github.pagehelper.PageInfo;
import com.sofwin.dto.UserDto;
import com.sofwin.pojo.SysRole;
import com.sofwin.pojo.SysUser;

import java.util.List;

public interface UserService {

    boolean saveUsers(List<SysUser> users);

    /**
     * 根据自定义条件查询用户登录信息
     * @param user
     * @return
     */
    SysUser selectUser(SysUser user);

    /**
     * 验证用户名和密码
     * @param user
     * @return
     */
    boolean checkLogin(SysUser user);


    /**
     * 根据条件分页查询用户信息
     * @param user
     * @param pageNumber
     * @param pageSize
     * @return
     */
    PageInfo<UserDto> selectUserByPage(SysUser user, Integer pageNumber, Integer pageSize);

    /**
    * @Author abiao
    * @Description 根据复选框的id，删除用户
    * @Date 2021/4/17 下午 2:23
    * @param ids 要删除的用户的id
    * @return boolean 是否删除成功
    */
    boolean deleteByIds(Integer[] ids);

    /**
    * @Author abiao
    * @Description 用户信息 新增|更新
    * @Date 2021/4/18 下午 6:03
    * @param user 目标用户
    * @return 是否删除成功
    */
    boolean saveUser(SysUser user);

    /**
    * @Author abiao
    * @Description 通过id查询用户，用户编辑获取id
    * @Date 2021/4/17 下午 5:28
    * @param id 用户id
    * @return SysUser id对应用户的pojo
    */
    SysUser selectUserById(Integer id);

    /**
     * shiro认证，查看用户名是否存在
     * @param username
     * @return
     */
    boolean selectUserByName(String username);

    /**
     * 根据角色id查询拥有的细密度权限
     * @param roleId
     * @return
     */
    List<String> selectUserPermissionByRoleId(Integer roleId);
}
